package org.mango.lineartable;


import org.mango.entity.DATA;

/**
 * 
 * @author 戴礼明
 *日期： 2016-4-21
 *content：定义顺序表结构
 */
public class LTtype {
  static final int MAXLEN=100;
  DATA[] data=new DATA[MAXLEN+1];
  int length;
  
    
  void lTInit(LTtype lTtype){
	   lTtype.length=0;
   }
   
   int lTLength(LTtype lTtype){
	   return lTtype.length;
   }
   
   int lTInsert(LTtype lTtype,int n,DATA data){
	      int i;
	       if(lTtypeOver(lTtype)==0){
	    	   return 0;
	       }
	      
	      if(inputNumError(lTtype, n)==0){
	    	  return 0;
	      }
	      
	      for(i=lTtype.length;i>n;i--){
	    	   lTtype.data[i+1]=lTtype.data[i];
	      }
	      
	      lTtype.data[n]=data;
	      lTtype.length++;
	      return 1;
   }
   
   int lTtypeOver(LTtype lTtype){
	   if(lTtype.length>MAXLEN){
		   System.out.println("顺序表已经满了，不能够在插入值了！");
		   return 0;
	   }
	   return 1;
   }
   
   int lTypeAdd(LTtype lTtype,DATA data){
	   
	    if(lTtypeOver(lTtype)==0){
	    	return 0;
	    }
	   
	    lTtype.data[++lTtype.length]=data;
	    return 1;
   }
   
   int lTtypeDelate(LTtype lTtype,int n){
	   
	   if(inputNumError(lTtype, n)==0){
		   return 0;
	   }
	   
	   for(int i=n;i<lTtype.length;i++){
		    lTtype.data[i]=lTtype.data[i+1];
	   }
	   lTtype.length--;
	   return 1;
   }
   
   DATA lTtypeFindData(LTtype lTtype,int n){
	    if(inputNumError(lTtype, n)==0){
	    	return null;
	    }
	    return lTtype.data[n];
   }
   
   int lTtypeByKey(LTtype lTtype,String key){
	   for(int i=0;i<lTtype.length;i++){
		   if(lTtype.data[i].key.compareTo(key)==0){
			   return i;
		   }
	   }
	   return 0;
   }
   
   int lTtypeShow(LTtype lTtype){
	   for(int i=1;i<lTtype.length+1;i++){
		   System.out.println("("+lTtype.data[i].key+","+lTtype.data[i].name+","+lTtype.data[i].age+")");
	   }
	   return 1;
   }
   
   int inputNumError(LTtype lTtype,int n){
	   if(n<1||n>lTtype.length-1){
	    	  System.out.println("插入元素序列号有误！");
	    	  return 0;
	      }
	   return 1;
   }
}
